﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.mbs.com/IoC" elementFormDefault="qualified" targetNamespace="http://www.mbs.com/IoC" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="mbs" nillable="true" type="tns:configuration" />
  <xs:complexType name="configuration">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="listners" type="tns:listners" />
      <xs:element minOccurs="0" maxOccurs="1" name="lifestyles" type="tns:lifestyles" />
      <xs:element minOccurs="0" maxOccurs="1" name="activators" type="tns:activators" />
      <xs:element minOccurs="0" maxOccurs="1" name="injectors" type="tns:injectors" />
      <xs:element minOccurs="0" maxOccurs="1" name="components" type="tns:components" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="component">
    <xs:sequence>
      <!--<xs:element name="properties" minOccurs="0" maxOccurs="1" type="tns:properties"/>-->
      <xs:element minOccurs="0" maxOccurs="1" name="extensions" type="tns:extensions" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
    <xs:attribute name="service" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute default="true" name="isLazyInit" type="xs:boolean" />
    <xs:attribute default="singleton" name="lifestyleType" type="xs:string" />
    <xs:attribute name="activator" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="listners" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="listner" type="tns:settingItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="activators" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="activator" type="tns:settingItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="lifestyles" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="lifestyle" type="tns:settingItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="injectors" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="injector" type="tns:settingItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="components" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="component" type="tns:component" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="properties" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="property" type="tns:property" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="property" >
    <xs:attribute name="name" type="xs:string" use="required" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="value" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="extensions" >
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="item" type="tns:settingItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="settingItem" >
    <xs:attribute name="name" type="xs:string" use="required" />
    <xs:attribute name="value" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="InterceptorCollection">
    <xs:sequence>
      <xs:element name="interceptor" type="tns:Interceptor"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Interceptor">
    
  </xs:complexType>
</xs:schema>